1. Field of the Invention
The present invention relates to the field of computer systems. In particular, the present invention is a method and apparatus for object oriented interprocess message switching between a sender process and a plurality of receiver processes.
2. Art Background
Conventional interprocess communication facilities are process oriented. Absent from conventional facilities is the ability for a sender process to address a message not to a receiver process, but to an object.
The term object comes from the programming methodology known as object-oriented programming. An object is a package of data and operations which object users can invoke to manipulate the data. Each object has an object type. The object type definition defines the object operations that can be performed on objects of that particular object type. The object operations are implemented independent of the objects themselves. Additionally, one object type may inherit the object operations defined and implemented for other object types. For further information on object-oriented design and programming techniques, see B. Meyer, Object-oriented Software Construction, (Prentice Hall, 1988), pp. 65-372.
A process is a copy or an instance of a program, an executable file, in the process of execution. A process uses an object by requesting an object operation defined. The requesting process has no knowledge of how the object operations are implemented and is unaffected by any changes to the implementation of the object operations. Typically, under the prior art, the requesting process requests an object operation to be performed by calling a procedure or function that performs the object operation, directly through an interprogramming call. The operation is performed in the requesting process.
The absence of object oriented message addressing has hindered the development of cooperative multiprocess applications which manage a plurality of objects in a network. Without object oriented message addressing, a process that wishes, for example, to display a drawing, must know not only the identity of the drawing, but the identity of the program that can display the drawing, whether a process is executing the program, and how to start execution of the program, if the program is not being executed. Furthermore, the process must also know the identities of other programs that need to be notified regarding the request to have the drawing displayed and/or the outcome of the request, i.e. the drawing was displayed or failed to be displayed. Likewise, the process must also know whether there are processes executing these programs that need to be notified, and how to start execution of these programs, if they are not being executed.
Making all programs being executed by cooperative multiprocess applications executing on a network aware of each other is a burdensome task, and has not been done in practice. As will be described, the present invention overcomes the disadvantages of the prior art, and provides a method and apparatus for object oriented interprocess message switching between a sender process and a plurality of receiver processes.